package model

type MessageRequest struct {
	ID     uint `json:"id"`     //
	Status uint `json:"status"` // 状态
}

type MessageResponse struct {
	ID         uint   `json:"id"`         //
	Username   string `json:"username"`   // 昵称
	Content    string `json:"content"`    // 内容
	ContactWay string `json:"contactWay"` // 联系途径
	Contact    string `json:"contact"`    // 联系方式
	CreateTime string `json:"createTime"` // 创建时间
	UpdateTime string `json:"updateTime"` // 更新时间
	DeleteTime string `json:"deleteTime"` // 删除时间
	Status     uint   `json:"status"`     // 状态
}

type MessageResponsePage struct {
	Page Page              `json:"page"`
	List []MessageResponse `json:"datalist"`
}

func (messageRequest MessageRequest) Convert() Messages {
	return Messages{
		Id:     messageRequest.ID,
		Status: messageRequest.Status,
	}
}

func (*MessageResponse) Convert(messages *Messages) *MessageResponse {
	return &MessageResponse{
		ID:         messages.Id,
		Username:   messages.Username,
		Content:    messages.Content,
		ContactWay: messages.ContactWay,
		Contact:    messages.Contact,
		CreateTime: messages.CreateTime.String(),
		UpdateTime: messages.UpdateTime.String(),
		DeleteTime: messages.DeleteTime.String(),
		Status:     messages.Status,
	}
}

func (*Messages) Convert(message []Messages) []MessageResponse {
	messageResponse := make([]MessageResponse, len(message))
	for i := range message {
		messageResponse[i] = *messageResponse[i].Convert(&message[i])
	}
	return messageResponse
}

func (*Messages) ConvertPage(messages []Messages, page Page) MessageResponsePage {
	list := make([]MessageResponse, len(messages))
	for i, v := range messages {
		list[i] = *list[i].Convert(&v)
	}
	return MessageResponsePage{
		Page: page,
		List: list,
	}
}
